Backwards solution: Can you predict self-evaluations from similarity to ingroup and outgroup choices?
m <- lmer( scale(selfResp) ~ scale(inGsim) + scale(outGsim) + ( scale(inGsim) + scale(outGsim) | subID) + (1 | trait), data = fullTrain)
Model failed to converge with max|grad| = 0.00239224 (tol = 0.002, component 1)
summary(m)
Linear mixed model fit by REML. t-tests use Satterthwaite's method ['lmerModLmerTest']
Formula: scale(selfResp) ~ scale(inGsim) + scale(outGsim) + (scale(inGsim) +
scale(outGsim) | subID) + (1 | trait)
Data: fullTrain
REML criterion at convergence: 9640.5
Scaled residuals:
Min 1Q Median 3Q Max
-4.1528 -0.6037 0.0680 0.6497 2.9224
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.09989 0.3160
subID (Intercept) 0.20570 0.4535
scale(inGsim) 0.02907 0.1705 -0.26
scale(outGsim) 0.02580 0.1606 0.22 -0.97
Residual 0.65418 0.8088
Number of obs: 3811, groups: trait, 148; subID, 43
Fixed effects:
Estimate Std. Error df t value Pr(>|t|)
(Intercept) -0.01146 0.07520 53.75711 -0.152 0.879491
scale(inGsim) 0.15216 0.03659 54.07607 4.158 0.000115 ***
scale(outGsim) -0.02811 0.03435 41.30898 -0.818 0.417848
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(nG)
scale(nGsm) -0.175
scale(tGsm) 0.143 -0.558
optimizer (nloptwrap) convergence code: 0 (OK)
Model failed to converge with max|grad| = 0.00239224 (tol = 0.002, component 1)
tidy(m,conf.int=TRUE,effects="fixed")
ggpredict(m, c("inGsim")) %>% plot(show.title=F) + xlab("Similarity to Ingroup Choices") + ylab("Self-Evaluation") + jtools::theme_apa()

m <- glmer( ingChoiceN ~ scale(slope) * novel + ( scale(slope) + novel | subID) + (1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: ingChoiceN ~ scale(slope) * novel + (scale(slope) + novel | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
8116.8 8191.0 -4047.4 8094.8 6266
Scaled residuals:
Min 1Q Median 3Q Max
-7.6460 -0.9719 0.4342 0.8748 3.6722
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 2.106e-15 4.589e-08
subID (Intercept) 5.839e+00 2.417e+00
scale(slope) 7.265e+00 2.695e+00 0.18
novelHeld Out 4.776e-03 6.911e-02 -0.74 0.53
Number of obs: 6277, groups: trait, 148; subID, 43
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.181581 0.406997 0.446 0.65549
scale(slope) 1.211092 0.457627 2.646 0.00813 **
novelHeld Out 0.020056 0.056590 0.354 0.72304
scale(slope):novelHeld Out 0.001002 0.063191 0.016 0.98735
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(s) nvlHlO
scale(slop) 0.157
novelHeldOt -0.179 0.082
scl(slp):HO 0.004 -0.058 0.030
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
tidy(m,conf.int=TRUE,exponentiate=TRUE,effects="fixed")
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: ingChoiceN ~ eSE + (eSE | subID)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4785.1 4816.1 -2387.5 4775.1 3635
Scaled residuals:
Min 1Q Median 3Q Max
-2.6814 -1.0139 0.5896 0.8615 2.8232
Random effects:
Groups Name Variance Std.Dev. Corr
subID (Intercept) 24.66 4.965
eSE 16.76 4.094 -1.00
Number of obs: 3640, groups: subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.4974 1.1746 -0.424 0.672
eSE 0.6004 0.9522 0.631 0.528
Correlation of Fixed Effects:
(Intr)
eSE -0.996
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: ingChoiceN ~ sSE * novel + (sSE | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4791.8 4841.4 -2387.9 4775.8 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.6486 -1.0125 0.5929 0.8627 2.7918
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.000 0.000
subID (Intercept) 1.134 1.065
sSE 26.117 5.111 -0.90
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.03974 0.29415 0.135 0.893
sSE 0.89300 1.28620 0.694 0.487
novel1 0.12039 0.32510 0.370 0.711
sSE:novel1 -0.36572 1.26144 -0.290 0.772
Correlation of Fixed Effects:
(Intr) sSE novel1
sSE -0.928
novel1 -0.427 0.366
sSE:novel1 0.413 -0.372 -0.976
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
m <- glmer( ingChoiceN ~ SE.Z * novel + ( SE.Z + novel | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
tidy(m,conf.int=TRUE,exponentiate=TRUE,effects="fixed")
r2beta(m)
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(oSE) + (scale(oSE) | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
5482.7 5520.8 -2735.3 5470.7 4215
Scaled residuals:
Min 1Q Median 3Q Max
-2.6879 -0.9939 0.5179 0.8500 2.8947
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000 0.0000
subID (Intercept) 0.3871 0.6222
scale(oSE) 0.1068 0.3267 0.59
Number of obs: 4221, groups: trait, 148; subID, 29
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.30322 0.12022 2.522 0.0117 *
scale(oSE) 0.08435 0.06924 1.218 0.2232
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr)
scale(oSE) 0.504
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
m <- glmer( as.factor(ingChoiceN) ~ predicted.Z*scale(NTB) + ( predicted.Z | subID) + ( predicted.Z | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
m <- glmer( as.factor(ingChoiceN) ~ predicted.Z*scale(NTB) + ( predicted.Z | subID) + ( predicted.Z | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ predicted.Z * scale(NTB) + (predicted.Z |
subID) + (predicted.Z | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
7069.5 7135.5 -3524.8 7049.5 5378
Scaled residuals:
Min 1Q Median 3Q Max
-2.5031 -1.0174 0.6124 0.8754 2.0570
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 4.970e-14 2.229e-07
predicted.Z 2.168e-14 1.472e-07 1.00
subID (Intercept) 2.908e-01 5.393e-01
predicted.Z 5.770e-04 2.402e-02 1.00
Number of obs: 5388, groups: trait, 148; subID, 43
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.32033 0.09038 3.544 0.000394 ***
predicted.Z 0.29293 0.09455 3.098 0.001947 **
scale(NTB) 0.17693 0.09817 1.802 0.071494 .
predicted.Z:scale(NTB) 0.03974 0.08321 0.478 0.632997
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) prdc.Z s(NTB)
predicted.Z 0.129
scale(NTB) 0.096 0.062
prd.Z:(NTB) 0.136 -0.352 0.421
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(RSE) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(RSE) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4793.6 4843.2 -2388.8 4777.6 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8434 -1.0083 0.5747 0.8744 2.3956
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 1.004e-18 1.002e-09
subID (Intercept) 9.301e-01 9.644e-01
entropy.Z 1.594e+00 1.262e+00 -0.55
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.7127 0.2436 2.925 0.00344 **
entropy.Z -0.5494 0.3071 -1.789 0.07362 .
scale(RSE) -0.2484 0.2335 -1.064 0.28751
entropy.Z:scale(RSE) 0.3395 0.3118 1.089 0.27626
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z s(RSE)
entropy.Z -0.412
scale(RSE) -0.019 0.206
ent.Z:(RSE) 0.218 -0.047 -0.388
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "RSE")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(SCC) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(SCC) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4795.1 4844.7 -2389.6 4779.1 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8462 -1.0069 0.5800 0.8735 2.3915
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 6.577e-20 2.564e-10
subID (Intercept) 9.521e-01 9.757e-01
entropy.Z 1.680e+00 1.296e+00 -0.56
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.690663 0.243870 2.832 0.00462 **
entropy.Z -0.527405 0.314479 -1.677 0.09353 .
scale(SCC) -0.097378 0.240594 -0.405 0.68567
entropy.Z:scale(SCC) 0.005057 0.299650 0.017 0.98653
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z s(SCC)
entropy.Z -0.436
scale(SCC) -0.071 0.122
ent.Z:(SCC) 0.118 0.025 -0.481
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "SCC")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(DS) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(DS) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4793.8 4843.4 -2388.9 4777.8 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8406 -1.0079 0.5813 0.8733 2.4261
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000 0.000
subID (Intercept) 0.8798 0.938
entropy.Z 1.6204 1.273 -0.55
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.7324 0.2379 3.078 0.00208 **
entropy.Z -0.5417 0.3101 -1.747 0.08070 .
scale(DS) 0.2496 0.2290 1.090 0.27583
entropy.Z:scale(DS) -0.3141 0.3095 -1.015 0.31015
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z sc(DS)
entropy.Z -0.431
scale(DS) 0.144 -0.206
entr.Z:(DS) -0.214 0.020 -0.448
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "DS")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(NFC) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(NFC) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4791.1 4840.7 -2387.6 4775.1 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8458 -1.0084 0.5964 0.8739 2.4604
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000 0.0000
subID (Intercept) 0.7927 0.8903
entropy.Z 1.2373 1.1124 -0.55
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.7115 0.2278 3.123 0.00179 **
entropy.Z -0.5087 0.2797 -1.819 0.06897 .
scale(NFC) 0.2597 0.2271 1.144 0.25278
entropy.Z:scale(NFC) -0.5659 0.2716 -2.083 0.03722 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z s(NFC)
entropy.Z -0.442
scale(NFC) 0.112 -0.175
ent.Z:(NFC) -0.190 0.048 -0.483
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "NFC")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(SING.Ind) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(SING.Ind) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4791.7 4841.3 -2387.9 4775.7 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8319 -1.0092 0.5749 0.8759 2.4004
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000 0.0000
subID (Intercept) 0.6746 0.8214
entropy.Z 1.4260 1.1941 -0.65
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.6476 0.2177 2.974 0.00294 **
entropy.Z -0.6070 0.2932 -2.071 0.03840 *
scale(SING.Ind) -0.5182 0.2563 -2.022 0.04318 *
entropy.Z:scale(SING.Ind) 0.1566 0.2875 0.545 0.58605
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z s(SING
entropy.Z -0.467
scl(SING.I) -0.005 0.244
e.Z:(SING.I 0.228 -0.066 -0.327
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "SING.Ind")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(SING.Inter) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(SING.Inter) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4791.4 4841.0 -2387.7 4775.4 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8785 -1.0138 0.5936 0.8820 2.4011
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000 0.0000
subID (Intercept) 0.6094 0.7806
entropy.Z 1.7311 1.3157 -0.51
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.7522 0.2142 3.512 0.000444 ***
entropy.Z -0.4557 0.3140 -1.451 0.146682
scale(SING.Inter) 0.5286 0.2593 2.038 0.041513 *
entropy.Z:scale(SING.Inter) -0.1277 0.2946 -0.433 0.664789
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z s(SING
entropy.Z -0.382
scl(SING.I) 0.237 -0.005
e.Z:(SING.I -0.056 0.040 -0.301
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "SING.Inter")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(Proto) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(Proto) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4795.2 4844.8 -2389.6 4779.2 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8447 -1.0052 0.5806 0.8732 2.3944
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000 0.0000
subID (Intercept) 0.9035 0.9505
entropy.Z 1.6478 1.2837 -0.54
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.69010 0.23886 2.889 0.00386 **
entropy.Z -0.50042 0.31002 -1.614 0.10650
scale(Proto) 0.08185 0.23908 0.342 0.73209
entropy.Z:scale(Proto) -0.09448 0.29866 -0.316 0.75173
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z scl(P)
entropy.Z -0.432
scale(Prot) 0.057 0.041
entrp.Z:(P) 0.011 -0.017 -0.281
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "Proto")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(SI) + ( entropy.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(SI) + (entropy.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4790.2 4839.8 -2387.1 4774.2 3632
Scaled residuals:
Min 1Q Median 3Q Max
-2.8302 -1.0044 0.5814 0.8769 2.4447
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000 0.0000
subID (Intercept) 0.6831 0.8265
entropy.Z 1.8112 1.3458 -0.64
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.74323 0.21772 3.414 0.000641 ***
entropy.Z -0.47302 0.31535 -1.500 0.133618
scale(SI) 0.45524 0.21902 2.079 0.037661 *
entropy.Z:scale(SI) -0.01954 0.30810 -0.063 0.949443
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z sc(SI)
entropy.Z -0.487
scale(SI) 0.165 -0.075
entr.Z:(SI) -0.024 0.071 -0.503
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "SI")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ entropy.Z*scale(NTB) + ( entropy.Z | subID) + ( entropy.Z | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ entropy.Z * scale(NTB) + (entropy.Z | subID) + (entropy.Z | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
4798.1 4860.1 -2389.0 4778.1 3630
Scaled residuals:
Min 1Q Median 3Q Max
-2.8355 -1.0062 0.5801 0.8745 2.3634
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.000e+00 0.000e+00
entropy.Z 5.571e-16 2.360e-08 NaN
subID (Intercept) 8.986e-01 9.479e-01
entropy.Z 1.595e+00 1.263e+00 -0.57
Number of obs: 3640, groups: trait, 148; subID, 25
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.68431 0.23774 2.878 0.0040 **
entropy.Z -0.52197 0.30393 -1.717 0.0859 .
scale(NTB) 0.24331 0.23185 1.049 0.2940
entropy.Z:scale(NTB) -0.06185 0.29468 -0.210 0.8337
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) entr.Z s(NTB)
entropy.Z -0.452
scale(NTB) 0.040 -0.082
ent.Z:(NTB) -0.066 0.031 -0.534
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("entropy.Z", "NTB")) %>% plot()
Data were 'prettified'. Consider using `terms="entropy.Z [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ slope.Z*scale(RSE) + ( slope.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
m <- glmer( as.factor(ingChoiceN) ~ slope.Z*scale(RSE) + ( slope.Z | subID) + ( 1 | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ slope.Z * scale(RSE) + (slope.Z | subID) + (1 | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
8108.2 8162.2 -4046.1 8092.2 6269
Scaled residuals:
Min 1Q Median 3Q Max
-7.5446 -0.9753 0.4334 0.8775 3.6256
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 1.047e-14 1.023e-07
subID (Intercept) 5.372e+00 2.318e+00
slope.Z 7.133e+00 2.671e+00 0.18
Number of obs: 6277, groups: trait, 148; subID, 43
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.2029 0.3932 0.516 0.60584
slope.Z 1.2754 0.4536 2.812 0.00492 **
scale(RSE) -0.7906 0.4133 -1.913 0.05575 .
slope.Z:scale(RSE) -0.3153 0.4452 -0.708 0.47887
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) slop.Z s(RSE)
slope.Z 0.156
scale(RSE) -0.030 -0.098
slp.Z:(RSE) -0.090 0.015 0.139
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(RSE) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(RSE) + (scale(desirability) |
subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2111.4 2165.2 -1045.7 2091.4 1594
Scaled residuals:
Min 1Q Median 3Q Max
-3.8959 -1.0144 0.4983 0.9101 1.4069
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.003365 0.05801
scale(desirability) 0.013385 0.11570 1.00
subID (Intercept) 0.415188 0.64435
scale(desirability) 0.001739 0.04170 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.38520 0.20272 1.900 0.05741 .
scale(desirability) 0.20932 0.06083 3.441 0.00058 ***
scale(RSE) 0.27336 0.20314 1.346 0.17840
scale(desirability):scale(RSE) 0.02205 0.05729 0.385 0.70036
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) s(RSE)
scl(dsrblt) 0.218
scale(RSE) 0.019 0.019
scl():(RSE) 0.018 0.128 0.233
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "RSE")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(SCC) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(SCC) + (scale(desirability) |
subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2110.0 2163.8 -1045.0 2090.0 1594
Scaled residuals:
Min 1Q Median 3Q Max
-3.8913 -1.0078 0.4896 0.9083 1.3630
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.003354 0.05791
scale(desirability) 0.013479 0.11610 1.00
subID (Intercept) 0.377675 0.61455
scale(desirability) 0.003107 0.05574 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.385673 0.194130 1.987 0.046958 *
scale(desirability) 0.209174 0.061907 3.379 0.000728 ***
scale(SCC) 0.337654 0.195663 1.726 0.084403 .
scale(desirability):scale(SCC) -0.006718 0.060638 -0.111 0.911783
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) s(SCC)
scl(dsrblt) 0.280
scale(SCC) 0.026 0.024
scl():(SCC) 0.022 0.143 0.293
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "SCC")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(DS) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(DS) + (scale(desirability) |
subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2110.9 2164.7 -1045.4 2090.9 1594
Scaled residuals:
Min 1Q Median 3Q Max
-3.7639 -1.0088 0.4900 0.9098 1.4151
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0034089 0.05839
scale(desirability) 0.0134907 0.11615 1.00
subID (Intercept) 0.3893895 0.62401
scale(desirability) 0.0009413 0.03068 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.38260 0.19680 1.944 0.051891 .
scale(desirability) 0.20787 0.06023 3.451 0.000558 ***
scale(DS) -0.29740 0.19610 -1.517 0.129382
scale(desirability):scale(DS) -0.03279 0.05445 -0.602 0.547033
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) sc(DS)
scl(dsrblt) 0.167
scale(DS) -0.015 -0.017
scl(d):(DS) -0.015 -0.103 0.179
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "DS")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(NFC) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(NFC) + (scale(desirability) |
subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2112.6 2166.4 -1046.3 2092.6 1594
Scaled residuals:
Min 1Q Median 3Q Max
-3.8577 -1.0118 0.4889 0.9094 1.3512
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.003355 0.05792
scale(desirability) 0.013450 0.11598 1.00
subID (Intercept) 0.479426 0.69241
scale(desirability) 0.002268 0.04762 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.38517 0.21664 1.778 0.075415 .
scale(desirability) 0.20871 0.06126 3.407 0.000657 ***
scale(NFC) -0.09903 0.21536 -0.460 0.645636
scale(desirability):scale(NFC) 0.01942 0.05410 0.359 0.719619
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) s(NFC)
scl(dsrblt) 0.244
scale(NFC) -0.008 -0.007
scl():(NFC) -0.008 -0.060 0.264
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "NFC")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(SING.Ind) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(SING.Ind) +
(scale(desirability) | subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2112.7 2166.5 -1046.4 2092.7 1594
Scaled residuals:
Min 1Q Median 3Q Max
-3.8602 -1.0147 0.4910 0.9059 1.3673
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.003337 0.05777
scale(desirability) 0.013431 0.11589 1.00
subID (Intercept) 0.486231 0.69730
scale(desirability) 0.002218 0.04710 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.38508 0.21806 1.766 0.077406 .
scale(desirability) 0.20921 0.06118 3.419 0.000628 ***
scale(SING.Ind) 0.05346 0.21663 0.247 0.805083
scale(desirability):scale(SING.Ind) -0.02489 0.05367 -0.464 0.642820
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) s(SING
scl(dsrblt) 0.242
scl(SING.I) 0.004 0.003
s():(SING.I 0.003 0.022 0.263
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "SING.Ind")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(SING.Inter) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(SING.Inter) +
(scale(desirability) | subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2110.4 2164.2 -1045.2 2090.4 1594
Scaled residuals:
Min 1Q Median 3Q Max
-3.8256 -1.0104 0.4934 0.9125 1.4150
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.0000000 0.00000
scale(desirability) 0.0093185 0.09653 NaN
subID (Intercept) 0.3727206 0.61051
scale(desirability) 0.0009385 0.03063 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.38345 0.19280 1.989 0.046716 *
scale(desirability) 0.20642 0.05956 3.466 0.000529 ***
scale(SING.Inter) -0.33236 0.19353 -1.717 0.085910 .
scale(desirability):scale(SING.Inter) -0.03516 0.05701 -0.617 0.537466
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) s(SING
scl(dsrblt) 0.162
scl(SING.I) -0.022 -0.021
s():(SING.I -0.020 -0.138 0.177
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "SING.Inter")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(Proto) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(Proto) +
(scale(desirability) | subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2109.2 2163.0 -1044.6 2089.2 1594
Scaled residuals:
Min 1Q Median 3Q Max
-4.3834 -1.0152 0.5623 0.9062 1.4029
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.003279 0.05726
scale(desirability) 0.013172 0.11477 1.00
subID (Intercept) 0.374479 0.61195
scale(desirability) 0.001273 0.03567 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.39167 0.19357 2.023 0.043030 *
scale(desirability) 0.21533 0.06089 3.536 0.000406 ***
scale(Proto) -0.38362 0.20188 -1.900 0.057402 .
scale(desirability):scale(Proto) -0.07237 0.07165 -1.010 0.312464
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) scl(P)
scl(dsrblt) 0.194
scale(Prot) -0.043 -0.047
scl(ds):(P) -0.038 -0.225 0.229
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "Proto")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(SI) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(SI) + (scale(desirability) |
subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2110.7 2164.5 -1045.4 2090.7 1594
Scaled residuals:
Min 1Q Median 3Q Max
-4.0641 -1.0169 0.5313 0.9074 1.5565
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.003313 0.05756
scale(desirability) 0.013506 0.11621 1.00
subID (Intercept) 0.492358 0.70168
scale(desirability) 0.002593 0.05092 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.38629 0.21938 1.761 0.078272 .
scale(desirability) 0.21359 0.06156 3.470 0.000521 ***
scale(SI) -0.05538 0.21816 -0.254 0.799632
scale(desirability):scale(SI) -0.08211 0.05464 -1.503 0.132865
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) sc(SI)
scl(dsrblt) 0.260
scale(SI) -0.008 -0.009
scl(d):(SI) -0.009 -0.079 0.280
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "SI")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

m <- glmer( as.factor(ingChoiceN) ~ scale(desirability)*scale(NTB) + ( scale(desirability) | subID) + ( scale(desirability) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
boundary (singular) fit: see help('isSingular')
summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ scale(desirability) * scale(NTB) + (scale(desirability) |
subID) + (scale(desirability) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
2112.8 2166.6 -1046.4 2092.8 1594
Scaled residuals:
Min 1Q Median 3Q Max
-3.9039 -1.0131 0.5005 0.9074 1.4211
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 0.00337 0.05805
scale(desirability) 0.01338 0.11569 1.00
subID (Intercept) 0.47789 0.69130
scale(desirability) 0.00211 0.04593 1.00
Number of obs: 1604, groups: trait, 148; subID, 11
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.38539 0.21633 1.782 0.07483 .
scale(desirability) 0.20947 0.06112 3.427 0.00061 ***
scale(NTB) -0.11353 0.21542 -0.527 0.59819
scale(desirability):scale(NTB) -0.01384 0.05480 -0.253 0.80060
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) scl(d) s(NTB)
scl(dsrblt) 0.237
scale(NTB) -0.010 -0.010
scl():(NTB) -0.009 -0.075 0.255
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
ggpredict(m, c("desirability", "NTB")) %>% plot()
Data were 'prettified'. Consider using `terms="desirability [all]"` to get smooth plots.

summary(m)
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: binomial ( logit )
Formula: as.factor(ingChoiceN) ~ predicted.Z * novel * scale(NFC) + (predicted.Z +
novel | subID) + (SE.Z * as.factor(novel) | trait)
Data: fullTest
Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+05))
AIC BIC logLik deviance df.resid
7096.7 7254.9 -3524.3 7048.7 5364
Scaled residuals:
Min 1Q Median 3Q Max
-2.5776 -1.0099 0.6120 0.8739 2.0613
Random effects:
Groups Name Variance Std.Dev. Corr
trait (Intercept) 2.406e-07 0.0004905
SE.Z 1.919e-04 0.0138525 -0.80
as.factor(novel)Held Out 3.252e-05 0.0057030 -0.82 1.00
SE.Z:as.factor(novel)Held Out 2.260e-02 0.1503186 -0.79 1.00 1.00
subID (Intercept) 3.192e-01 0.5649467
predicted.Z 5.547e-03 0.0744757 0.55
novelHeld Out 9.336e-04 0.0305543 0.17 0.92
Number of obs: 5388, groups: trait, 148; subID, 43
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.30788 0.10120 3.042 0.00235 **
predicted.Z 0.23271 0.11743 1.982 0.04750 *
novelHeld Out 0.03714 0.06458 0.575 0.56526
scale(NFC) -0.03902 0.10602 -0.368 0.71287
predicted.Z:novelHeld Out 0.01637 0.07181 0.228 0.81966
predicted.Z:scale(NFC) -0.10215 0.10282 -0.993 0.32050
novelHeld Out:scale(NFC) 0.04980 0.06121 0.814 0.41593
predicted.Z:novelHeld Out:scale(NFC) 0.03690 0.06466 0.571 0.56821
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) prdc.Z nvlHlO s(NFC) pr.Z:HO p.Z:(N nHO:(N
predicted.Z 0.012
novelHeldOt -0.311 0.130
scale(NFC) -0.060 -0.142 -0.050
prdctd.Z:HO 0.117 -0.378 -0.148 0.081
prd.Z:(NFC) -0.147 0.214 0.025 0.351 -0.010
nvlHO:(NFC) -0.027 0.023 0.028 -0.244 -0.125 0.013
p.Z:HO:(NFC 0.059 -0.052 -0.185 -0.013 0.309 -0.370 0.117
optimizer (bobyqa) convergence code: 0 (OK)
boundary (singular) fit: see help('isSingular')
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(SCC) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE","novel","SCC")) %>% plot()
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(DS) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE","novel","DS")) %>% plot()
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(NFC) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE","novel", "NFC")) %>% plot()
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(SING.Ind) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE","novel","SING.Ind")) %>% plot()
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(SING.Inter) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE","novel","SING.Inter")) %>% plot()
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(Proto) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE", "Proto")) %>% plot()
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(SI) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE","novel","SI")) %>% plot()
m <- glmer( as.factor(ingChoiceN) ~ SE.Z*as.factor(novel)*scale(NTB) + ( SE.Z+as.factor(novel) | subID) + ( SE.Z+as.factor(novel) | trait), data = fullTest, family = binomial, control = glmerControl(optimizer = "bobyqa",
optCtrl = list(maxfun = 100000)),
nAGQ = 1)
summary(m)
ggpredict(m, c("SE", "novel", "NTB")) %>% plot()
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkobG1lclRlc3QpCmxpYnJhcnkoZ2dlZmZlY3RzKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHJlcG9ydCkKbGlicmFyeShyMmdsbW0pCmxpYnJhcnkocGVyZm9ybWFuY2UpCmxpYnJhcnkoY29ycnIpCmxpYnJhcnkoYnJvb20ubWl4ZWQpCmBgYAoKYGBge3J9CmZ1bGxUZXN0IDwtIHJlYWQuY3N2KCIuLi9DbGVhbmluZy9vdXRwdXQvZnVsbFRlc3QuY3N2IikKZnVsbFRyYWluIDwtIHJlYWQuY3N2KCIuLi9DbGVhbmluZy9vdXRwdXQvZnVsbFRyYWluLmNzdiIpCgp0cmFpdHNGcmVxcyA8LSByZWFkLmNzdigiLi4vQ2xlYW5pbmcvb3V0cHV0L3RyYWl0RnJlcU92ZXJVbmRlci5jc3YiKQp0cmFpdHNGcmVxcyA8LSByZW5hbWUodHJhaXRzRnJlcXMsIHByb3BzID0gb3B0aW9uQ2hvaWNlTikKZnVsbFRlc3QgPC0gbWVyZ2UoZnVsbFRlc3QsIHRyYWl0c0ZyZXFzW2MoInRyYWl0IiwicHJvcHMiKV0sIGJ5ID0gInRyYWl0IikKZnVsbFRlc3QkcHJvcENvcnIgPC0gaWZlbHNlKGZ1bGxUZXN0JEVzdGltYXRvcj09IlVuZGVyZXN0aW1hdG9yIiwgMS1mdWxsVGVzdCRwcm9wcywgZnVsbFRlc3QkcHJvcHMpCgp1U3VicyA8LSB1bmlxdWUoZnVsbFRlc3Qkc3ViSUQpCgppbmREaWZmcyA8LSBmdWxsVGVzdFshZHVwbGljYXRlZChmdWxsVGVzdCRzdWJJRCksXQpgYGAKCmBgYHtyfQpmdWxsVGVzdCRpbmdDaG9pY2VOIDwtIGFzLmZhY3RvcihmdWxsVGVzdCRpbmdDaG9pY2VOKQpmdWxsVGVzdCRub3ZlbCA8LSBhcy5mYWN0b3IoZnVsbFRlc3Qkbm92ZWwpCmZ1bGxUZXN0JHNlbGZSZXNwLlogPC0gc2NhbGUoZnVsbFRlc3Qkc2VsZlJlc3ApCmZ1bGxUZXN0JFNFLlogPC0gc2NhbGUoZnVsbFRlc3QkU0UpCmZ1bGxUZXN0JGlTRS5aIDwtIHNjYWxlKGZ1bGxUZXN0JGlTRSkKZnVsbFRlc3Qkb1NFLlogPC0gc2NhbGUoZnVsbFRlc3Qkb1NFKQpmdWxsVGVzdCRwcmVkaWN0ZWQuWiA8LSBzY2FsZShmdWxsVGVzdCRwcmVkaWN0ZWQpCmZ1bGxUZXN0JHNsb3BlLlogPC0gc2NhbGUoZnVsbFRlc3Qkc2xvcGUpCmZ1bGxUZXN0JGVudHJvcHkuWiA8LSBzY2FsZShmdWxsVGVzdCRlbnRyb3B5KQpmdWxsVGVzdCRXU1IuWiA8LSBzY2FsZShmdWxsVGVzdCRXU1IpCmZ1bGxUZXN0JG5laWdoQXZlT3V0U0UuWiA8LSBzY2FsZShmdWxsVGVzdCRuZWlnaEF2ZU91dFNFKQpmdWxsVGVzdCRuZWlnaEF2ZUFsbFNFLlogPC0gc2NhbGUoZnVsbFRlc3QkbmVpZ2hBdmVBbGxTRSkKZnVsbFRlc3QkbmVpZ2hBdmVJblNFLlogPC0gc2NhbGUoZnVsbFRlc3QkbmVpZ2hBdmVJblNFKQpgYGAKCgpgYGB7cn0KZnVsbFRlc3Qkbm92ZWwgPC0gYXMuZmFjdG9yKGZ1bGxUZXN0JG5vdmVsKQpsZXZlbHMoZnVsbFRlc3Qkbm92ZWwpIDwtIGxpc3QoIlRyYWluZWQiICA9ICIwIiwgIkhlbGQgT3V0IiA9ICIxIikKYGBgCgpgYGB7cn0KZXZhbE1hdCA8LSBtYXRyaXgobnJvdz0xNDgsIG5jb2w9MSkKZXZhbE1hdFssMV0gPC0gMToxNDgKZXZhbE1hdCA8LSBhcy5kYXRhLmZyYW1lKGV2YWxNYXQpCmNvbG5hbWVzKGV2YWxNYXQpIDwtIGMoIklkeCIpCmZvcihpIGluIHVTdWJzKXsKICBldmFsIDwtIGZ1bGxUcmFpbiRzZWxmUmVzcFtmdWxsVHJhaW4kc3ViSUQ9PWldCiAgY3VyIDwtIGNiaW5kKGZ1bGxUcmFpbiRJZHhbZnVsbFRyYWluJHN1YklEPT1pXSwgZXZhbCkKICBjb2xuYW1lcyhjdXIpIDwtIGMoIklkeCIscGFzdGUwKCJlIixpKSkKICBldmFsTWF0IDwtIG1lcmdlKGV2YWxNYXQsIGN1ciwgYnkgPSAiSWR4IiwgYWxsLnggPSBUKQp9CmBgYAoKYGBge3J9Ck1EU2ZyYW1lIDwtCiAgZGF0YS5mcmFtZShJZHg9MToxNDgsIAogICAgICAgICAgIE1EUz1jbWRzY2FsZShkaXN0KGV2YWxNYXRbMjpsZW5ndGgoZXZhbE1hdCldKSwgZWlnPVRSVUUsIGs9MykkcG9pbnRzCikKZnVsbFRlc3QgPC1tZXJnZShmdWxsVGVzdCwgTURTZnJhbWUsIGJ5ID0gIklkeCIpCmBgYAoKYGBge3J9CmxpYnJhcnkobWFncml0dHIpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoZ2dwdWJyKQoKbWRzIDwtIGV2YWxNYXQgJT4lCiAgc2VsZWN0KDI6bGVuZ3RoKC4pKSAlPiUKICBkaXN0KCkgJT4lICAgICAgICAgIAogIGlzb01EUyhrPTIpICU+JQogIC4kcG9pbnRzICU+JQogIGFzX3RpYmJsZSgpCmNvbG5hbWVzKG1kcykgPC0gYygiRGltLjEiLCAiRGltLjIiKQoKIyBQbG90IE1EUwpnZ3NjYXR0ZXIobWRzLCB4ID0gIkRpbS4xIiwgeSA9ICJEaW0uMiIsIAogICAgICAgICAgbGFiZWwgPSBhbGxQb3NDZW50cyR0cmFpdCwKICAgICAgICAgIHNpemUgPSAxLAogICAgICAgICAgcmVwZWwgPSBUUlVFKQoKbWRzJElkeCA8LSAxOjE0OAoKZnVsbFRlc3QgPC1tZXJnZShmdWxsVGVzdCwgbWRzLCBieSA9ICJJZHgiKQpgYGAKCgpgYGB7cn0KZXZhbE1hdCA8LSBtYXRyaXgobnJvdz0wLCBuY29sPTMpCmV2YWxNYXRbLDJdIDwtIDE6MTQ4CmV2YWxNYXQgPC0gYXMuZGF0YS5mcmFtZShldmFsTWF0KQpjb2xuYW1lcyhldmFsTWF0KSA8LSBjKCJzdWJJRCIsIklkeCIsImV2YWwiKQpmb3IoaSBpbiB1U3Vicyl7CiAgZXZhbCA8LSBmdWxsVHJhaW4kc2VsZlJlc3BbZnVsbFRyYWluJHN1YklEPT1pXQogIHByZXNlbnQgPC0gd2hpY2goIWlzLm5hKGV2YWwpKQogIElkeD1mdWxsVHJhaW4kSWR4W2Z1bGxUcmFpbiRzdWJJRD09aV0KICBJZHg9SWR4W3ByZXNlbnRdCiAgZXZhbD1ldmFsW3ByZXNlbnRdCiAgY3VyIDwtIGNiaW5kKHN1YklEPWksCiAgICAgICAgICAgICAgIElkeCA9IElkeCwKICAgICAgICAgICAgICAgTURTPWNtZHNjYWxlKGRpc3QoZXZhbCksIGVpZz1UUlVFLCBrPTEpJHBvaW50cykKICBldmFsTWF0IDwtIHJiaW5kKGV2YWxNYXQsIGN1cikKfQpgYGAKCmBgYHtyfQogIApgYGAKCgpgYGB7cn0KIyBwcm9wLnRlc3QodHJhaXRzRnJlcXMkb3B0aW9uQ2hvaWNlTiwgdHJhaXRzRnJlcXMkTiwgcD1yZXAoLjUsbGVuZ3RoKHRyYWl0c0ZyZXFzJE4pKSkKIyAKIyBtIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gdHJhaXQgKyAoIDEgfCBzdWJJRCkgLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAojICAgICBuQUdRID0gMSkKIyAKIyBmdWxsVGVzdCR0cmFpdCA8LSBhcy5mYWN0b3IoZnVsbFRlc3QkdHJhaXQpCiMgY29udHJhc3RzKGZ1bGxUZXN0JHRyYWl0KSA8LSBjb250ci5zdW0oMTQ4KQojIG0gPC0gZ2xtKG9wdGlvbkNob2ljZU4gfiB0cmFpdCwgZmFtaWx5ID0gYmlub21pYWwsCiMgICAgICAgICAgIGRhdGEgPSBmdWxsVGVzdAojICAgICAgICAgICkKIyBzdW1tYXJ5KG0pCmBgYAoKCmBgYHtyfQojIHRyYWl0c0ZyZXFzJHRyYWl0IDwtIGFzLmZhY3Rvcih0cmFpdHNGcmVxcyR0cmFpdCkKIyBjb250cmFzdHModHJhaXRzRnJlcXMkdHJhaXQpIDwtIGNvbnRyLnN1bSgxNDgpCiMgbSA8LSBnbG0ob3B0aW9uQ2hvaWNlTiB+IDEsIGZhbWlseSA9IGJpbm9taWFsLAojICAgICAgICAgICBkYXRhID0gdHJhaXRzRnJlcXMKIyAgICAgICAgICApCiMgc3VtbWFyeShtKQojIGNoZWNrX292ZXJkaXNwZXJzaW9uKG0pCiMgY2hlY2tfbW9kZWwobSkKIyAKIyBtIDwtIGdsbShvcHRpb25DaG9pY2VOIH4gdHJhaXQsIGZhbWlseSA9IHF1YXNpYmlub21pYWwsCiMgICAgICAgICAgIGRhdGEgPSB0cmFpdHNGcmVxcwojICAgICAgICAgICkKIyBjaGVja19vdmVyZGlzcGVyc2lvbihtKQojIGNoZWNrX21vZGVsKG0pCiMgCiMgdC50ZXN0KCkKIyAKIyBtIDwtIGdsbShvcHRpb25DaG9pY2VOIH4gdHJhaXQsIGZhbWlseSA9IHBvaXNzb24sCiMgICAgICAgICAgIGRhdGEgPSB0cmFpdHNGcmVxcwojICAgICAgICAgICkKIyBjaGVja19vdmVyZGlzcGVyc2lvbihtKQojIGNoZWNrX21vZGVsKG0pCmBgYAoKYGBge3J9CnByb3BNYXRyaXggPC0gbWF0cml4KG5yb3c9MTQ4LG5jb2w9NykKZm9yKGkgaW4gMToxNDgpewogICAgdHJhaXREZiA8LSBzdWJzZXQoZnVsbFRlc3QsIElkeD09aSkKICAgIHRlc3QgPC0gdC50ZXN0KGFzLm51bWVyaWModHJhaXREZiRpbmdDaG9pY2VOKS0xLCBtdT0uNTApCiAgICBwcm9wTWF0cml4W2ksIF0gPC0gYyhpLCB0ZXN0JHN0YXRpc3RpYywgdGVzdCRwLnZhbHVlLCB0ZXN0JGNvbmYuaW50LCB0ZXN0JGVzdGltYXRlLCB0ZXN0JHBhcmFtZXRlcikKfQpjb2xuYW1lcyhwcm9wTWF0cml4KSA8LSBjKCJJZHgiLCAic3RhdCIsICJwIiwgIkxDSSIsICJVQ0kiLCAiZXN0IiwgInBhcmFtIikKcHJvcE1hdHJpeCA8LSBhcy5kYXRhLmZyYW1lKHByb3BNYXRyaXgpCnByb3BNYXRyaXgkdHJhaXQgPC0gdHJhaXRzRnJlcXMkdHJhaXQKcHJvcE1hdHJpeCA8LSBwcm9wTWF0cml4W29yZGVyKHByb3BNYXRyaXgkcCksXQpgYGAKCmBgYHtyfQp4IDwtIGluZERpZmZzICU+JSAKICAgIHNlbGVjdChncm91cEhvbW9waCwgc2VIb21vcGgsIERTOlNJTkcuSW50ZXIpICU+JQogIGNvcnJlbGF0ZSgpICU+JSAKICBmb2N1cyhncm91cEhvbW9waCkgJT4lCiAgICBhcnJhbmdlKGdyb3VwSG9tb3BoKQoKeCAlPiUgCiAgbXV0YXRlKHJvd25hbWUgPSBmYWN0b3Iocm93bmFtZSwgbGV2ZWxzID0gcm93bmFtZVtvcmRlcihncm91cEhvbW9waCldKSkgJT4lICAjIE9yZGVyIGJ5IGNvcnJlbGF0aW9uIHN0cmVuZ3RoCiAgZ2dwbG90KGFlcyh4ID0gcm93bmFtZSwgeSA9IGdyb3VwSG9tb3BoKSkgKwogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsKICAgIHlsYWIoIkNvcnJlbGF0aW9uIENvZWZmaWNpZW50IikgKwogICAgeGxhYigiSW5kaXZpZHVhbCBEaWZmZXJlbmNlcyIpICsgdGhlbWVfZ3JleShiYXNlX3NpemUgPSA5KSAgKyB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLGhqdXN0ID0gMSkpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dCggCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSA5LCBhbmdsZSA9IDQ1LCB2anVzdCA9IDEpKSArIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dCh2anVzdD0xLjkpKSArIHRoZW1lKGF4aXMudGV4dD1lbGVtZW50X3RleHQoc2l6ZT05KSwKICAgICAgICBheGlzLnRpdGxlPWVsZW1lbnRfdGV4dChzaXplPTksZmFjZT0iYm9sZCIpKSArIHRoZW1lKGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemU9OSkpICsgdGhlbWUocGFuZWwuYm9yZGVyID0gZWxlbWVudF9yZWN0KGNvbG91ciA9ICJibGFjayIsIGZpbGwgPSBOQSwgc2l6ZSA9MSkpICsgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKSArIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2JsYW5rKCksIHBhbmVsLmdyaWQubWlub3IgPSBlbGVtZW50X2JsYW5rKCksCnBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksIGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvdXIgPSAiYmxhY2siKSkKYGBgCgoKIyBGYW1pbGlhcml0eSBwcmVkaWN0cyBSZWFjdGlvbiBUaW1lCgpgYGB7cn0KbSA8LSBsbWVyKCBsb2coUlQpIH4gZmFtICsgKCBmYW0gfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZmFtIikpICU+JSBwbG90KCkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpgYGAKCmBgYHtyfQptIDwtIGxtZXIoIGxvZyhSVCkgfiBmYW0gKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICggZmFtIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoImZhbSIpKSAlPiUgcGxvdCgpCnRpZHkobSxjb25mLmludD1UUlVFLGV4cG9uZW50aWF0ZT1UUlVFLGVmZmVjdHM9ImZpeGVkIikKYGBgCgoKIyBSZXBsaWNhdGlvbiBvZiBwcmlvciBzZWxmLWFuY2hvcmluZyBmaW5kaW5nczogU2VsZi1ldmFsdWF0aW9ucyBwcmVkaWN0aW5nIGluZ3JvdXAgZXZhbHVhdGlvbnMKCiMjIE5vIGNvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gc2VsZlJlc3AuWiArICAoIHNlbGZSZXNwLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgoKIyMgQ292YXJpYXRlcwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBzZWxmUmVzcC5aICsgcHJvcENvcnIgKyBkZXNpcmFiaWxpdHkgKyAoIHNlbGZSZXNwLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpyMmJldGEobSkKZ2dwcmVkaWN0KG0sIGMoInNlbGZSZXNwLloiKSkgJT4lIHBsb3Qoc2hvdy50aXRsZT1GKSArIHhsYWIoIlNlbGYtRGVzY3JpcHRpdmVuZXNzIikgKyB5bGFiKCJMaWtlbGlob29kIG9mIEluZ3JvdXAgQ2hvaWNlIikgKyBqdG9vbHM6OnRoZW1lX2FwYSgpCmdnc2F2ZSgifi9Eb2N1bWVudHMvVUMgUml2ZXJzaWRlL1N0dWRpZXMvU2VsZi1BbmNob3JpbmcvRmlndXJlcy9TZWxmUHJvamVjdGlvbi50aWZmIixkcGk9NjAwKQpgYGAKCiMgRG9lcyBzaW1pbGFyaXR5LXdlaWdodGVkIHNlbGYtZXZhbHVhdGlvbiBhdmVyYWdlIHByZWRpY3QgaW5ncm91cCBjaG9pY2VzPwoKIyMgTm8gY292YXJpYXRlcwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBXU1IuWiArICggV1NSLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgoKIyMgQ292YXJpYXRlcwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBXU1IuWiArIHByb3BDb3JyICsgZGVzaXJhYmlsaXR5ICsgKCBXU1IuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQp0aWR5KG0sY29uZi5pbnQ9VFJVRSxleHBvbmVudGlhdGU9VFJVRSxlZmZlY3RzPSJmaXhlZCIpCnIyYmV0YShtKQpgYGAKIyBEb2VzIHNlbGYtZXZhbHVhdGlvbiB3ZWlnaHRlZCBzaW1pbGFyaXR5IHByZWRpY3QgaW5ncm91cCBjaG9pY2VzPwoKIyMgTm8gY292YXJpYXRlcwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBTRS5aICsgKCBTRS5aIHwgc3ViSUQpICwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpgYGAKCiMjIENvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gU0UuWiArIHByb3BDb3JyICsgZGVzaXJhYmlsaXR5ICsgKCBTRS5aIHwgc3ViSUQpICwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQp0aWR5KG0sY29uZi5pbnQ9VFJVRSxleHBvbmVudGlhdGU9VFJVRSxlZmZlY3RzPSJmaXhlZCIpCnIyYmV0YShtKQpgYGAKCiMgRG8gY3Jvc3MtdmFsaWRhdGVkIHNpbWlsYXJpdHkqc2VsZi1ldmFsdWF0aW9uIHByZWRpY3Rpb25zIHByZWRpY3QgaW5ncm91cCBjaG9pY2VzPyAKCiMjIE5vIGNvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gcHJlZGljdGVkLlogKyAoIHByZWRpY3RlZC5aIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgojIENvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gcHJlZGljdGVkLlogKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICggcHJlZGljdGVkLlogfCBzdWJJRCkgKyAoMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQp0aWR5KG0sY29uZi5pbnQ9VFJVRSxleHBvbmVudGlhdGU9VFJVRSxlZmZlY3RzPSJmaXhlZCIpCnIyYmV0YShtKQpnZ3ByZWRpY3QobSwgYygicHJlZGljdGVkLloiKSkgJT4lIHBsb3Qoc2hvdy50aXRsZT1GKSArIHhsYWIoIkNyb3NzLVZhbGlkYXRlZCBTZWxmLURlc2NyaXB0aXZlbmVzcyBQcmVkaWN0aW9ucyIpICsgeWxhYigiTGlrZWxpaG9vZCBvZiBJbmdyb3VwIENob2ljZSIpICsganRvb2xzOjp0aGVtZV9hcGEoKQpnZ3NhdmUoIn4vRG9jdW1lbnRzL1VDIFJpdmVyc2lkZS9TdHVkaWVzL1NlbGYtQW5jaG9yaW5nL0ZpZ3VyZXMvQ1ZwcmVkaWN0aW9uLnRpZmYiLGRwaT02MDApCmBgYAojIERvIHBlb3BsZSBzZWxmLWFuY2hvciBtb3JlIGZvciBoaWdoZXIgaW5kZWdyZWUgdHJhaXRzPwoKIyMgTm8gY292YXJpYXRlcwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBwcmVkaWN0ZWQuWiAqIGluRGVncmVlICsgKCBwcmVkaWN0ZWQuWiArIGluRGVncmVlIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgojIyBDb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IHByZWRpY3RlZC5aICogaW5EZWdyZWUgKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICAoIHByZWRpY3RlZC5aICsgaW5EZWdyZWUgfCBzdWJJRCkgKyAoMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygicHJlZGljdGVkLloiLCAiaW5EZWdyZWUiKSkgJT4lIHBsb3Qoc2hvdy50aXRsZT1GKSArIHhsYWIoIkNyb3NzLVZhbGlkYXRlZCBTZWxmLURlc2NyaXB0aXZlbmVzcyIpICsgeWxhYigiTGlrZWxpaG9vZCBvZiBJbmdyb3VwIENob2ljZSIpICsganRvb2xzOjp0aGVtZV9hcGEoKQpgYGAKCgojIERvIHBlb3BsZSBzZWxmLWFuY2hvciBtb3JlIGZvciBoaWdoZXIgb3V0ZGVncmVlIHRyYWl0cz8KCiMjIE5vIGNvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gcHJlZGljdGVkLlogKiBvdXREZWdyZWUgKyAoIHByZWRpY3RlZC5aICsgb3V0RGVncmVlIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgojIyBDb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IHByZWRpY3RlZC5aICogb3V0RGVncmVlICsgcHJvcENvcnIgKyBkZXNpcmFiaWxpdHkgKyAgKCBwcmVkaWN0ZWQuWiArIG91dERlZ3JlZSB8IHN1YklEKSArICgxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJwcmVkaWN0ZWQuWiIsICJvdXREZWdyZWUiKSkgJT4lIHBsb3Qoc2hvdy50aXRsZT1GKSArIHhsYWIoIkNyb3NzLVZhbGlkYXRlZCBTZWxmLURlc2NyaXB0aXZlbmVzcyIpICsgeWxhYigiTGlrZWxpaG9vZCBvZiBJbmdyb3VwIENob2ljZSIpICsganRvb2xzOjp0aGVtZV9hcGEoKQpgYGAKCiMgRG8gY3Jvc3MtdmFsaWRhdGVkIHNpbWlsYXJpdHkqc2VsZi1ldmFsdWF0aW9uIHByZWRpY3Rpb25zIHByZWRpY3QgaW5ncm91cCBjaG9pY2VzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgd2FzIHNlZW4gcHJpb3Igb3Igbm90PwoKIyMgTm8gY292YXJpYXRlcwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBwcmVkaWN0ZWQuWiAqIG5vdmVsICsgKCBwcmVkaWN0ZWQuWiArIG5vdmVsIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgojIyBDb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IHByZWRpY3RlZC5aICogbm92ZWwgKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICggcHJlZGljdGVkLlogKyBub3ZlbCB8IHN1YklEKSArICgxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCnRpZHkobSxjb25mLmludD1UUlVFLGV4cG9uZW50aWF0ZT1UUlVFLGVmZmVjdHM9ImZpeGVkIikKcjJiZXRhKG0pCmdncHJlZGljdChtLCBjKCJwcmVkaWN0ZWQuWiIsICJub3ZlbCIpKSAlPiUgcGxvdChzaG93LnRpdGxlPUYpKyB4bGFiKCJDcm9zcy1WYWxpZGF0ZWQgU2VsZi1EZXNjcmlwdGl2ZW5lc3MiKSArIHlsYWIoIkxpa2VsaWhvb2Qgb2YgSW5ncm91cCBDaG9pY2UiKSArIGp0b29sczo6dGhlbWVfYXBhKCkgICsgc2NhbGVfY29sb3JfZGlzY3JldGUobGFiZWxzID0gYygiVHJhaW5lZCIsIkhlbGQtT3V0IikpCmdnc2F2ZSgifi9Eb2N1bWVudHMvVUMgUml2ZXJzaWRlL1N0dWRpZXMvU2VsZi1BbmNob3JpbmcvRmlndXJlcy9DVnByZWRpY3Rpb25HZW5lcmFsaXplLnRpZmYiLGRwaT02MDApCmBgYAoKIyBEb2VzIGdlbmVyYWxpemF0aW9uIGRlcGVuZCBvbiBvdXRkZWdyZWU/CgojIyBObyBjb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IHByZWRpY3RlZC5aICogbm92ZWwgKiBvdXREZWdyZWUgICsgKCBwcmVkaWN0ZWQuWiArIG5vdmVsIHwgc3ViSUQpICwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpgYGAKCiMjIENvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gcHJlZGljdGVkLlogKiBub3ZlbCAqIG91dERlZ3JlZSAgKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICggcHJlZGljdGVkLlogKyBub3ZlbCB8IHN1YklEKSAsIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpyMmJldGEobSkKZ2dwcmVkaWN0KG0sIGMoInByZWRpY3RlZC5aIiwgIm91dERlZ3JlZSIgLCJub3ZlbCIpKSAlPiUgcGxvdChzaG93LnRpdGxlPUYpKyB4bGFiKCJDcm9zcy1WYWxpZGF0ZWQgU2VsZi1EZXNjcmlwdGl2ZW5lc3MiKSArIHlsYWIoIkxpa2VsaWhvb2Qgb2YgSW5ncm91cCBDaG9pY2UiKSArIGp0b29sczo6dGhlbWVfYXBhKCkKZ2dzYXZlKCJ+L0RvY3VtZW50cy9VQyBSaXZlcnNpZGUvU3R1ZGllcy9TZWxmLUFuY2hvcmluZy9GaWd1cmVzL0NWcHJlZGljdGlvbkdlbmVyYWxpemUudGlmZiIsZHBpPTYwMCkKYGBgCiMgRG9lcyBnZW5lcmFsaXphdGlvbiBkZXBlbmQgb24gaW5kZWdyZWU/CgojIyBObyBjb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IHByZWRpY3RlZC5aICogbm92ZWwgKiBpbkRlZ3JlZSArICggcHJlZGljdGVkLlogKyBub3ZlbCB8IHN1YklEKSAsIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgojIyBDb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IHByZWRpY3RlZC5aICogbm92ZWwgKiBpbkRlZ3JlZSArIHByb3BDb3JyICsgZGVzaXJhYmlsaXR5ICsgICggcHJlZGljdGVkLlogKyBub3ZlbCB8IHN1YklEKSAsIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpyMmJldGEobSkKZ2dwcmVkaWN0KG0sIGMoInByZWRpY3RlZC5aIiwgIm91dERlZ3JlZSIgLCJub3ZlbCIpKSAlPiUgcGxvdChzaG93LnRpdGxlPUYpKyB4bGFiKCJDcm9zcy1WYWxpZGF0ZWQgU2VsZi1EZXNjcmlwdGl2ZW5lc3MiKSArIHlsYWIoIkxpa2VsaWhvb2Qgb2YgSW5ncm91cCBDaG9pY2UiKSArIGp0b29sczo6dGhlbWVfYXBhKCkKYGBgCgojIE5laWdoYm9yaW5nIERlcGVuZGVuY2llcyBQcmVkaWN0aW5nIENob2ljZXMKCiMjIE5vIGNvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gbmVpZ2hBdmVPdXRTRS5aICArICggbmVpZ2hBdmVPdXRTRS5aIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgojIyBDb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IG5laWdoQXZlT3V0U0UuWiAgKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICggbmVpZ2hBdmVPdXRTRS5aIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpyMmJldGEobSkKZ2dwcmVkaWN0KG0sIGMoIm5laWdoQXZlT3V0U0UuWiIpKSAlPiUgcGxvdChzaG93LnRpdGxlPUYpKyB4bGFiKCJPdXR3YXJkcyBOZWlnaGJvcmluZyBTZWxmLUV2YWx1YXRpb25zIikgKyB5bGFiKCJMaWtlbGlob29kIG9mIEluZ3JvdXAgQ2hvaWNlIikgKyBqdG9vbHM6OnRoZW1lX2FwYSgpCmdnc2F2ZSgifi9Eb2N1bWVudHMvVUMgUml2ZXJzaWRlL1N0dWRpZXMvU2VsZi1BbmNob3JpbmcvRmlndXJlcy9vdXRkZWdyZWVOZWlnaGJvcnMudGlmZiIsZHBpPTYwMCkKYGBgCgojIEdlbmVyYWxpemF0aW9uIG9mIE91dGRlZ3JlZSBOZWlnaGJvcmluZyBTZWxmLUV2YWx1YXRpb25zCgojIyBObyBjb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IG5laWdoQXZlT3V0U0UuWiAqIG5vdmVsICsgKCBuZWlnaEF2ZU91dFNFLlogKyBub3ZlbCB8IHN1YklEKSArICgxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmBgYAoKIyMgQ292YXJpYXRlcwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBuZWlnaEF2ZU91dFNFLlogKiBub3ZlbCArIHByb3BDb3JyICsgZGVzaXJhYmlsaXR5ICsgKCBuZWlnaEF2ZU91dFNFLlogKyBub3ZlbCB8IHN1YklEKSArICgxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCnRpZHkobSxjb25mLmludD1UUlVFLGV4cG9uZW50aWF0ZT1UUlVFLGVmZmVjdHM9ImZpeGVkIikKcjJiZXRhKG0pCmdncHJlZGljdChtLCBjKCJuZWlnaEF2ZU91dFNFLloiLCJub3ZlbCIpKSAlPiUgcGxvdChzaG93LnRpdGxlPUYpKyB4bGFiKCJPdXR3YXJkcyBOZWlnaGJvcmluZyBTZWxmLUV2YWx1YXRpb25zIikgKyB5bGFiKCJMaWtlbGlob29kIG9mIEluZ3JvdXAgQ2hvaWNlIikgKyBqdG9vbHM6OnRoZW1lX2FwYSgpCmdnc2F2ZSgifi9Eb2N1bWVudHMvVUMgUml2ZXJzaWRlL1N0dWRpZXMvU2VsZi1BbmNob3JpbmcvRmlndXJlcy9vdXRkZWdyZWVOZWlnaGJvcnNHZW5lcmFsaXphdGlvbi50aWZmIixkcGk9NjAwKQpgYGAKCiMgRG9lcyBlbnRyb3B5IChpLmUuLCB1bmNlcnRhaW50eSkgcHJlZGljdCBsaWtlbGlob29kIG9mIGluZ3JvdXAgY2hvaWNlcz8KCiMjIE5vIGNvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gZW50cm9weS5aICArICggZW50cm9weS5aIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKYGBgCgojIyBDb3ZhcmlhdGVzCgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IGVudHJvcHkuWiAgKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICggZW50cm9weS5aIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpyMmJldGEobSkKZ2dwcmVkaWN0KG0sIGMoImVudHJvcHkuWiIpKSAlPiUgcGxvdChzaG93LnRpdGxlPUYpICsgeGxhYigiVW5jZXJ0YWludHkiKSArIHlsYWIoIkxpa2VsaWhvb2Qgb2YgSW5ncm91cCBDaG9pY2UiKSArIGp0b29sczo6dGhlbWVfYXBhKCkKZ2dzYXZlKCJ+L0RvY3VtZW50cy9VQyBSaXZlcnNpZGUvU3R1ZGllcy9TZWxmLUFuY2hvcmluZy9GaWd1cmVzL1VuY2VydGFpbnR5LnRpZmYiLGRwaT02MDApCmBgYAoKIyBEb2VzIGEgbGluZWFyIHRyZW5kIG9mIHNpbWlsYXJpdHktYmFzZWQgcHJvYmFiaWxpdGllcyBwcmVkaWN0IGluZ3JvdXAgY2hvaWNlcz8KCiMjIE5vIGNvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gc2xvcGUuWiAgKyAoIHNsb3BlLlogfCBzdWJJRCkgKyAoMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpgYGAKCiMjIENvdmFyaWF0ZXMKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gc2xvcGUuWiAgKyBwcm9wQ29yciArIGRlc2lyYWJpbGl0eSArICggc2xvcGUuWiB8IHN1YklEKSArICgxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCnRpZHkobSxjb25mLmludD1UUlVFLGV4cG9uZW50aWF0ZT1UUlVFLGVmZmVjdHM9ImZpeGVkIikKZ2dwcmVkaWN0KG0sIGMoInNsb3BlLloiKSkgJT4lIHBsb3Qoc2hvdy50aXRsZT1GKSArIHhsYWIoIkxpbmVhciBUcmVuZCBvZiBHcmVhdGVyIFNlbGYtRGVzY3JpcHRpdmVuZXNzIikgKyB5bGFiKCJMaWtlbGlob29kIG9mIEluZ3JvdXAgQ2hvaWNlIikgKyBqdG9vbHM6OnRoZW1lX2FwYSgpCmdnc2F2ZSgifi9Eb2N1bWVudHMvVUMgUml2ZXJzaWRlL1N0dWRpZXMvU2VsZi1BbmNob3JpbmcvRmlndXJlcy9TbG9wZS50aWZmIixkcGk9NjAwKQpgYGAKCiMgRG9lcyBhIGxpbmVhciB0cmVuZCBvZiBzaW1pbGFyaXR5LWJhc2VkIHByb2JhYmlsaXRpZXMgcHJlZGljdCBpbmdyb3VwIGNob2ljZXMsIGNvbnRyb2xsaW5nIGZvciBzZWxmLWRlc2NyaXB0aXZlbmVzcz8KCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gc2NhbGUoc2xvcGUpICsgc2VsZlJlc3AuWiAgKyAoIHNjYWxlKHNsb3BlKSArIHNlbGZSZXNwLlogfCBzdWJJRCkgKyAoMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQp0aWR5KG0sY29uZi5pbnQ9VFJVRSxleHBvbmVudGlhdGU9VFJVRSxlZmZlY3RzPSJmaXhlZCIpCmBgYAoKIyBEb2VzIGEgbm9uLXBhcmFtZXRyaWMgdHJlbmQgb2Ygc2ltaWxhcml0eS1iYXNlZCBwcm9iYWJpbGl0aWVzIHByZWRpY3QgaW5ncm91cCBjaG9pY2VzLCBjb250cm9sbGluZyBmb3Igc2VsZi1kZXNjcmlwdGl2ZW5lc3M/CgpgYGB7cn0KbSA8LSBnbG1lciggaW5nQ2hvaWNlTiB+IHNjYWxlKG5sc2xvcGUpICsgc2VsZlJlc3AuWiArICAoIHNjYWxlKG5sc2xvcGUpICsgc2VsZlJlc3AuWiB8IHN1YklEKSArICgxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCnRpZHkobSxjb25mLmludD1UUlVFLGV4cG9uZW50aWF0ZT1UUlVFLGVmZmVjdHM9ImZpeGVkIikKYGBgCgojIERvZXMgYSBsaW5lYXIgdHJlbmQgb2Ygc2ltaWxhcml0eS1iYXNlZCBwcm9iYWJpbGl0aWVzIHByZWRpY3QgaW5ncm91cCBjaG9pY2VzPwoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBzbG9wZS5aICArIHByZWRpY3RlZC5aICsgKCBzbG9wZS5aICsgcHJlZGljdGVkLlogfCBzdWJJRCkgKyAoMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQp0aWR5KG0sY29uZi5pbnQ9VFJVRSxleHBvbmVudGlhdGU9VFJVRSxlZmZlY3RzPSJmaXhlZCIpCmBgYAoKIyBCYWNrd2FyZHMgc29sdXRpb246IENhbiB5b3UgcHJlZGljdCBzZWxmLWV2YWx1YXRpb25zIGZyb20gc2ltaWxhcml0eSB0byBpbmdyb3VwIGFuZCBvdXRncm91cCBjaG9pY2VzPwoKYGBge3J9Cm0gPC0gbG1lciggc2NhbGUoc2VsZlJlc3ApIH4gc2NhbGUoaW5Hc2ltKSArIHNjYWxlKG91dEdzaW0pICsgKCAgc2NhbGUoaW5Hc2ltKSArIHNjYWxlKG91dEdzaW0pIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVHJhaW4pCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpnZ3ByZWRpY3QobSwgYygiaW5Hc2ltIikpICU+JSBwbG90KHNob3cudGl0bGU9RikgKyB4bGFiKCJTaW1pbGFyaXR5IHRvIEluZ3JvdXAgQ2hvaWNlcyIpICsgeWxhYigiU2VsZi1FdmFsdWF0aW9uIikgKyBqdG9vbHM6OnRoZW1lX2FwYSgpCmBgYAoKYGBge3J9Cm0gPC0gZ2xtZXIoIGluZ0Nob2ljZU4gfiBzY2FsZShzbG9wZSkgKiBub3ZlbCAgKyAoIHNjYWxlKHNsb3BlKSArIG5vdmVsIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpgYGAKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gZVNFICsgKCBlU0UgfCBzdWJJRCkgLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmBgYAoKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gc1NFICsgKCBzU0UgfCBzdWJJRCkgKyAoMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQp0aWR5KG0sY29uZi5pbnQ9VFJVRSxleHBvbmVudGlhdGU9VFJVRSxlZmZlY3RzPSJmaXhlZCIpCnIyYmV0YShtKQpgYGAKCmBgYHtyfQptIDwtIGdsbWVyKCBpbmdDaG9pY2VOIH4gU0UuWiAqIG5vdmVsICsgKCBTRS5aICsgbm92ZWwgfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKdGlkeShtLGNvbmYuaW50PVRSVUUsZXhwb25lbnRpYXRlPVRSVUUsZWZmZWN0cz0iZml4ZWQiKQpyMmJldGEobSkKYGBgCgoKYGBge3J9Cm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IFNFLlogKyBzY2FsZShkZXNpcmFiaWxpdHkpICsgKCBTRS5aIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzY2FsZShvU0UpICsgKCBzY2FsZShvU0UpIHwgc3ViSUQpICsgKDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNjYWxlKGlTRSkgKyAoIHNjYWxlKGlTRSkgfCBzdWJJRCkgKyAoMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQoKbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gU0UuWiphcy5mYWN0b3Iobm92ZWwpICsgKCBTRS5aICsgYXMuZmFjdG9yKG5vdmVsKSB8IHN1YklEKSArICggIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IFNFLloqYXMuZmFjdG9yKG5vdmVsKSArIHNjYWxlKGRlc2lyYWJpbGl0eSkgKyAoIFNFLlogKyBhcy5mYWN0b3Iobm92ZWwpICsgc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHN1YklEKSArICggIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoIlNFIiwgIm5vdmVsIikpICU+JSBwbG90KCkKYGBgCgpgYGB7cn0KbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gcHJlZGljdGVkLloqc2NhbGUoUlNFKSArICggcHJlZGljdGVkLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoInByZWRpY3RlZC5aIiwgIlJTRSIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBwcmVkaWN0ZWQuWipzY2FsZShTQ0MpICsgKCBwcmVkaWN0ZWQuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygicHJlZGljdGVkLloiLCAiU0NDIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHByZWRpY3RlZC5aKnNjYWxlKERTKSArICggcHJlZGljdGVkLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoInByZWRpY3RlZC5aIiwgIkRTIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHByZWRpY3RlZC5aKnNjYWxlKE5GQykgKyAoIHByZWRpY3RlZC5aIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJwcmVkaWN0ZWQuWiIsICJORkMiKSkgJT4lIHBsb3QoKQoKbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gcHJlZGljdGVkLloqc2NhbGUoU0lORy5JbmQpICsgKCBwcmVkaWN0ZWQuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygicHJlZGljdGVkLloiLCAiU0lORy5JbmQiKSkgJT4lIHBsb3QoKQoKbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gcHJlZGljdGVkLloqc2NhbGUoU0lORy5JbnRlcikgKyAoIHByZWRpY3RlZC5aIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJwcmVkaWN0ZWQuWiIsICJTSU5HLkludGVyIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHByZWRpY3RlZC5aKnNjYWxlKFByb3RvKSArICggcHJlZGljdGVkLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoInByZWRpY3RlZC5aIiwgIlByb3RvIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHByZWRpY3RlZC5aKnNjYWxlKFNJKSArICggcHJlZGljdGVkLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoInByZWRpY3RlZC5aIiwgIlNJIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHByZWRpY3RlZC5aKnNjYWxlKE5UQikgKyAoIHByZWRpY3RlZC5aIHwgc3ViSUQpICsgKCBwcmVkaWN0ZWQuWiB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygicHJlZGljdGVkLloiLCAiTlRCIikpICU+JSBwbG90KCkKYGBgCgpgYGB7cn0KbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gZW50cm9weS5aKnNjYWxlKFJTRSkgKyAoIGVudHJvcHkuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZW50cm9weS5aIiwgIlJTRSIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBlbnRyb3B5Lloqc2NhbGUoU0NDKSArICggZW50cm9weS5aIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJlbnRyb3B5LloiLCAiU0NDIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IGVudHJvcHkuWipzY2FsZShEUykgKyAoIGVudHJvcHkuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZW50cm9weS5aIiwgIkRTIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IGVudHJvcHkuWipzY2FsZShORkMpICsgKCBlbnRyb3B5LlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoImVudHJvcHkuWiIsICJORkMiKSkgJT4lIHBsb3QoKQoKbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gZW50cm9weS5aKnNjYWxlKFNJTkcuSW5kKSArICggZW50cm9weS5aIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJlbnRyb3B5LloiLCAiU0lORy5JbmQiKSkgJT4lIHBsb3QoKQoKbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gZW50cm9weS5aKnNjYWxlKFNJTkcuSW50ZXIpICsgKCBlbnRyb3B5LlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoImVudHJvcHkuWiIsICJTSU5HLkludGVyIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IGVudHJvcHkuWipzY2FsZShQcm90bykgKyAoIGVudHJvcHkuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZW50cm9weS5aIiwgIlByb3RvIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IGVudHJvcHkuWipzY2FsZShTSSkgKyAoIGVudHJvcHkuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZW50cm9weS5aIiwgIlNJIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IGVudHJvcHkuWipzY2FsZShOVEIpICsgKCBlbnRyb3B5LlogfCBzdWJJRCkgKyAoIGVudHJvcHkuWiB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZW50cm9weS5aIiwgIk5UQiIpKSAlPiUgcGxvdCgpCmBgYAoKYGBge3J9Cm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNsb3BlLloqc2NhbGUoUlNFKSArICggc2xvcGUuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygic2xvcGUuWiIsICJSU0UiKSkgJT4lIHBsb3QoKQoKbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gc2xvcGUuWipzY2FsZShTQ0MpICsgKCBzbG9wZS5aIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJzbG9wZS5aIiwgIlNDQyIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzbG9wZS5aKnNjYWxlKERTKSArICggc2xvcGUuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygic2xvcGUuWiIsICJEUyIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzbG9wZS5aKnNjYWxlKE5GQykgKyAoIHNsb3BlLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoInNsb3BlLloiLCAiTkZDIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNsb3BlLloqc2NhbGUoU0lORy5JbmQpICsgKCBzbG9wZS5aIHwgc3ViSUQpICsgKCAxIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJzbG9wZS5aIiwgIlNJTkcuSW5kIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNsb3BlLloqc2NhbGUoU0lORy5JbnRlcikgKyAoIHNsb3BlLlogfCBzdWJJRCkgKyAoIDEgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoInNsb3BlLloiLCAiU0lORy5JbnRlciIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzbG9wZS5aKnNjYWxlKFByb3RvKSArICggc2xvcGUuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygic2xvcGUuWiIsICJQcm90byIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzbG9wZS5aKnNjYWxlKFNJKSArICggc2xvcGUuWiB8IHN1YklEKSArICggMSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygic2xvcGUuWiIsICJTSSIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzbG9wZS5aKnNjYWxlKE5UQikgKyAoIHNsb3BlLlogfCBzdWJJRCkgKyAoIHNsb3BlLlogfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoInNsb3BlLloiLCAiTlRCIikpICU+JSBwbG90KCkKYGBgCgpgYGB7cn0KbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gc2NhbGUoZGVzaXJhYmlsaXR5KSpzY2FsZShSU0UpICsgKCBzY2FsZShkZXNpcmFiaWxpdHkpIHwgc3ViSUQpICsgKCBzY2FsZShkZXNpcmFiaWxpdHkpIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJkZXNpcmFiaWxpdHkiLCAiUlNFIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNjYWxlKGRlc2lyYWJpbGl0eSkqc2NhbGUoU0NDKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHN1YklEKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZGVzaXJhYmlsaXR5IiwgIlNDQyIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzY2FsZShkZXNpcmFiaWxpdHkpKnNjYWxlKERTKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHN1YklEKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZGVzaXJhYmlsaXR5IiwgIkRTIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNjYWxlKGRlc2lyYWJpbGl0eSkqc2NhbGUoTkZDKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHN1YklEKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZGVzaXJhYmlsaXR5IiwgIk5GQyIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzY2FsZShkZXNpcmFiaWxpdHkpKnNjYWxlKFNJTkcuSW5kKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHN1YklEKSArICggc2NhbGUoZGVzaXJhYmlsaXR5KSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiZGVzaXJhYmlsaXR5IiwgIlNJTkcuSW5kIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNjYWxlKGRlc2lyYWJpbGl0eSkqc2NhbGUoU0lORy5JbnRlcikgKyAoIHNjYWxlKGRlc2lyYWJpbGl0eSkgfCBzdWJJRCkgKyAoIHNjYWxlKGRlc2lyYWJpbGl0eSkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoImRlc2lyYWJpbGl0eSIsICJTSU5HLkludGVyIikpICU+JSBwbG90KCkKCm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IHNjYWxlKGRlc2lyYWJpbGl0eSkqc2NhbGUoUHJvdG8pICsgKCBzY2FsZShkZXNpcmFiaWxpdHkpIHwgc3ViSUQpICsgKCBzY2FsZShkZXNpcmFiaWxpdHkpIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJkZXNpcmFiaWxpdHkiLCAiUHJvdG8iKSkgJT4lIHBsb3QoKQoKbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gc2NhbGUoZGVzaXJhYmlsaXR5KSpzY2FsZShTSSkgKyAoIHNjYWxlKGRlc2lyYWJpbGl0eSkgfCBzdWJJRCkgKyAoIHNjYWxlKGRlc2lyYWJpbGl0eSkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoImRlc2lyYWJpbGl0eSIsICJTSSIpKSAlPiUgcGxvdCgpCgptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBzY2FsZShkZXNpcmFiaWxpdHkpKnNjYWxlKE5UQikgKyAoIHNjYWxlKGRlc2lyYWJpbGl0eSkgfCBzdWJJRCkgKyAoIHNjYWxlKGRlc2lyYWJpbGl0eSkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoImRlc2lyYWJpbGl0eSIsICJOVEIiKSkgJT4lIHBsb3QoKQpgYGAKCmBgYHtyfQptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBwcmVkaWN0ZWQuWipub3ZlbCpzY2FsZShORkMpICsgKCBwcmVkaWN0ZWQuWitub3ZlbCB8IHN1YklEKSArICggU0UuWiphcy5mYWN0b3Iobm92ZWwpIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJTRSIsICJub3ZlbCIsIlJTRSIpKSAlPiUgcGxvdCgpCmBgYAoKYGBge3J9Cm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IFNFLloqYXMuZmFjdG9yKG5vdmVsKSpzY2FsZShTQ0MpICsgKCBTRS5aK2FzLmZhY3Rvcihub3ZlbCkgfCBzdWJJRCkgKyAoIFNFLlorYXMuZmFjdG9yKG5vdmVsKSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiU0UiLCJub3ZlbCIsIlNDQyIpKSAlPiUgcGxvdCgpCmBgYAoKYGBge3J9Cm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IFNFLloqYXMuZmFjdG9yKG5vdmVsKSpzY2FsZShEUykgKyAoIFNFLlorYXMuZmFjdG9yKG5vdmVsKSB8IHN1YklEKSArICggU0UuWithcy5mYWN0b3Iobm92ZWwpIHwgdHJhaXQpLCBkYXRhID0gZnVsbFRlc3QsIGZhbWlseSA9IGJpbm9taWFsLCBjb250cm9sID0gZ2xtZXJDb250cm9sKG9wdGltaXplciA9ICJib2J5cWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRDdHJsID0gbGlzdChtYXhmdW4gPSAxMDAwMDApKSwKICAgIG5BR1EgPSAxKQpzdW1tYXJ5KG0pCmdncHJlZGljdChtLCBjKCJTRSIsIm5vdmVsIiwiRFMiKSkgJT4lIHBsb3QoKQpgYGAKCmBgYHtyfQptIDwtIGdsbWVyKCBhcy5mYWN0b3IoaW5nQ2hvaWNlTikgfiBTRS5aKmFzLmZhY3Rvcihub3ZlbCkqc2NhbGUoTkZDKSArICggU0UuWithcy5mYWN0b3Iobm92ZWwpIHwgc3ViSUQpICsgKCBTRS5aK2FzLmZhY3Rvcihub3ZlbCkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoIlNFIiwibm92ZWwiLCAiTkZDIikpICU+JSBwbG90KCkKYGBgCgpgYGB7cn0KbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gU0UuWiphcy5mYWN0b3Iobm92ZWwpKnNjYWxlKFNJTkcuSW5kKSArICggU0UuWithcy5mYWN0b3Iobm92ZWwpIHwgc3ViSUQpICsgKCBTRS5aK2FzLmZhY3Rvcihub3ZlbCkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoIlNFIiwibm92ZWwiLCJTSU5HLkluZCIpKSAlPiUgcGxvdCgpCmBgYAoKYGBge3J9Cm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IFNFLloqYXMuZmFjdG9yKG5vdmVsKSpzY2FsZShTSU5HLkludGVyKSArICggU0UuWithcy5mYWN0b3Iobm92ZWwpIHwgc3ViSUQpICsgKCBTRS5aK2FzLmZhY3Rvcihub3ZlbCkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoIlNFIiwibm92ZWwiLCJTSU5HLkludGVyIikpICU+JSBwbG90KCkKYGBgCgpgYGB7cn0KbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gU0UuWiphcy5mYWN0b3Iobm92ZWwpKnNjYWxlKFByb3RvKSArICggU0UuWithcy5mYWN0b3Iobm92ZWwpIHwgc3ViSUQpICsgKCBTRS5aK2FzLmZhY3Rvcihub3ZlbCkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoIlNFIiwgIlByb3RvIikpICU+JSBwbG90KCkKYGBgCgpgYGB7cn0KbSA8LSBnbG1lciggYXMuZmFjdG9yKGluZ0Nob2ljZU4pIH4gU0UuWiphcy5mYWN0b3Iobm92ZWwpKnNjYWxlKFNJKSArICggU0UuWithcy5mYWN0b3Iobm92ZWwpIHwgc3ViSUQpICsgKCBTRS5aK2FzLmZhY3Rvcihub3ZlbCkgfCB0cmFpdCksIGRhdGEgPSBmdWxsVGVzdCwgZmFtaWx5ID0gYmlub21pYWwsIGNvbnRyb2wgPSBnbG1lckNvbnRyb2wob3B0aW1pemVyID0gImJvYnlxYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdEN0cmwgPSBsaXN0KG1heGZ1biA9IDEwMDAwMCkpLAogICAgbkFHUSA9IDEpCnN1bW1hcnkobSkKZ2dwcmVkaWN0KG0sIGMoIlNFIiwibm92ZWwiLCJTSSIpKSAlPiUgcGxvdCgpCmBgYAoKYGBge3J9Cm0gPC0gZ2xtZXIoIGFzLmZhY3RvcihpbmdDaG9pY2VOKSB+IFNFLloqYXMuZmFjdG9yKG5vdmVsKSpzY2FsZShOVEIpICsgKCBTRS5aK2FzLmZhY3Rvcihub3ZlbCkgfCBzdWJJRCkgKyAoIFNFLlorYXMuZmFjdG9yKG5vdmVsKSB8IHRyYWl0KSwgZGF0YSA9IGZ1bGxUZXN0LCBmYW1pbHkgPSBiaW5vbWlhbCwgY29udHJvbCA9IGdsbWVyQ29udHJvbChvcHRpbWl6ZXIgPSAiYm9ieXFhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0Q3RybCA9IGxpc3QobWF4ZnVuID0gMTAwMDAwKSksCiAgICBuQUdRID0gMSkKc3VtbWFyeShtKQpnZ3ByZWRpY3QobSwgYygiU0UiLCAibm92ZWwiLCAiTlRCIikpICU+JSBwbG90KCkKYGBgCgoK